From e144734a5ecc87d49fa578c06420c7c486c36a74 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 23 Jul 2014 11:31:47 -0700 Subject: [PATCH] Fix dependencies during tests A library target is needed for testing if any examples or integration tests are being built, similarly with bin targets. --- src/cargo/util/toml.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/cargo/util/toml.rs b/src/cargo/util/toml.rs index b30bb7bdf..40607e937 100644 --- a/src/cargo/util/toml.rs +++ b/src/cargo/util/toml.rs @@ -568,23 +568,30 @@ fn normalize(libs: &[TomlLibTarget], let profile = &Profile::default_test(); dst.push(Target::test_target(test.name.as_slice(), &path.to_path(), - profile)); + profile, + metadata)); } } let mut ret = Vec::new(); + let test_dep = if examples.len() > 0 || tests.len() > 0 { + Needed + } else { + NotNeeded + }; + match (libs, bins) { ([_, ..], [_, ..]) => { lib_targets(&mut ret, libs, Needed, metadata); - bin_targets(&mut ret, bins, NotNeeded, + bin_targets(&mut ret, bins, test_dep, |bin| format!("src/bin/{}.rs", bin.name)); }, ([_, ..], []) => { - lib_targets(&mut ret, libs, NotNeeded, metadata); + lib_targets(&mut ret, libs, test_dep, metadata); }, ([], [_, ..]) => { - bin_targets(&mut ret, bins, NotNeeded, + bin_targets(&mut ret, bins, test_dep, |bin| format!("src/{}.rs", bin.name)); }, ([], []) => () -- 2.30.2